#include "MainWindow.h"
#include <QtGui>
#include <QSqlQuery>
#include <QSqlError>
#include <iostream>

MainWindow::MainWindow(int perfil)
{	
	mainWidget = new QWidget;
	activeArea = new QWidget;
	centralArea = new QStackedLayout(activeArea);
	activeArea->setParent(mainWidget);
	activeArea->setGeometry(170,5,300,450);
	setFixedSize(640,480);
	setCentralWidget(mainWidget);
	createActions();
	createMenu();
	createStackedLayouts();
}
void MainWindow::createActions(){
	altaCancha= new QAction("Agregar nueva Cancha",this);
	altaArbitro = new QAction("Alta de Arbitro",this);
	altaAdmin = new QAction("Agregar Administrador",this);
	salir = new QAction("Salir",this);
	crearCompetencia = new QAction("Crear Competencia",this);
	agrEquipo = new QAction("Inscribir Equipo a Competencia",this);
	altaTrofeo = new QAction("Alta de Trofeo",this);
	verCompetencia = new QAction("Informacion de Torneos...",this);
	elimCompetencia = new QAction("Eliminar Competencia",this);
	connect(crearCompetencia, SIGNAL(triggered()), this, SLOT(loadCrearCompetencia()));
	connect(altaTrofeo, SIGNAL(triggered()), this, SLOT(loadAltaTrofeo()));
	connect(agrEquipo, SIGNAL(triggered()), this, SLOT(loadAgregarEquipo()));
	connect(altaArbitro,SIGNAL(triggered()),this,SLOT(loadAltaArbitro()));
	connect(altaCancha,SIGNAL(triggered()),this,SLOT(loadAltaCancha()));
	connect(altaAdmin,SIGNAL(triggered()),this,SLOT(loadAgregarAdministrador()));	
	connect(salir,SIGNAL(triggered()),this,SLOT(close()));	
	
}

void MainWindow::createMenu(){
	administracion = menuBar()->addMenu("Administracion");
	administracion->addAction(altaArbitro);
	administracion->addAction(altaAdmin);
	administracion->addAction(altaCancha);	
	administracion->addAction(salir);
	competencias = menuBar()->addMenu(tr("&Competencias"));
	competencias->addAction(crearCompetencia);
	competencias->addAction(agrEquipo);
	competencias->addAction(altaTrofeo);
	competencias->addAction(verCompetencia);
	competencias->addAction(elimCompetencia);
	help= menuBar()->addMenu("Ayuda");
	about = menuBar()->addMenu("Acerca de...");
	
}

void MainWindow::loadCrearCompetencia(){
	auxAction=crearCompetencia->text();
	std::cout << qPrintable(auxAction) <<std::endl;
	
	centralArea->setCurrentIndex(1);
	std::cout << "hola" <<std::endl;
	setWindowTitle("GECABOL - Crear una competencia");
	
}

void MainWindow::loadAgregarEquipo(){
	auxAction=agrEquipo->text();
	std::cout << qPrintable(auxAction) <<std::endl;
	centralArea->setCurrentIndex(3);
	llenaDorsales();
	setWindowTitle("GECABOL - Agregar Equipo a Competencia");
		
}

void MainWindow::loadAltaTrofeo(){
	auxAction=altaTrofeo->text();
	std::cout << qPrintable(auxAction) <<std::endl;
	
	centralArea->setCurrentIndex(2);
	std::cout << "hola" <<std::endl;
	setWindowTitle("GECABOL - Alta de nuevo trofeo");
	
}

void MainWindow::loadVerCompetencia(){
	
}

void MainWindow::loadEliminarCompetencia(){
	
}


void MainWindow::loadAltaArbitro(){
	auxAction=altaArbitro->text();
	std::cout << qPrintable(auxAction) <<std::endl;	
	centralArea->setCurrentIndex(4);
	setWindowTitle("GECABOL - Alta de Arbitro");
}

void MainWindow::loadAltaCancha(){
	auxAction=altaCancha->text();
	std::cout << qPrintable(auxAction) <<std::endl;	
	centralArea->setCurrentIndex(5);
	setWindowTitle("GECABOL - Agregar nueva Cancha");

}
void MainWindow::loadAgregarAdministrador(){
	auxAction=altaAdmin->text();
	std::cout << qPrintable(auxAction) <<std::endl;	
	centralArea->setCurrentIndex(6);
	setWindowTitle("GECABOL - Agregar nuevo Administrador");
	
}

void MainWindow::showAvailableGolTrophy(){
	QDialog *trofeos = new QDialog(this);
	listaTrofeosGol = new QListWidget;
	QVBoxLayout *layout= new QVBoxLayout; 
	QPushButton *boton= new QPushButton("Elegir");
	trofeos->setModal(true);
	int encontrado=0;
	QSqlQuery query("SELECT  idTrofeo,descripcion from Trofeo WHERE nombreComp='' and tipoTrofeo=2");//trofeos sin asignar
	idTrofeosGol.clear();
	
	while (query.next()) {
		idTrofeosGol.append(query.value(0).toInt());
		listaTrofeosGol->addItem(query.value(1).toString());
		encontrado=1;
	}
	if(encontrado==0){ 
		QMessageBox::warning(this,"","No se encontro ningun trofeo disponible para asignar.");
	}else{
		listaTrofeosGol->setCurrentRow(0);
		connect(boton,SIGNAL(clicked()),this,SLOT(asignGolTrophy()));
		connect(boton,SIGNAL(clicked()),trofeos,SLOT(close()));		
		layout->addWidget(new QLabel("Trofeos Disponibles:"));
		layout->addWidget(listaTrofeosGol);
		layout->addWidget(boton,Qt::AlignCenter);
		layout->addStretch();
		trofeos->setLayout(layout);
		trofeos->setFixedSize(250,200);
		trofeos->setVisible(true);		
	}
}

void MainWindow::showAvailableChampTrophy(){
	QDialog *trofeos = new QDialog(this);
	listaTrofeosCamp = new QListWidget;
	QVBoxLayout *layout= new QVBoxLayout; 
	QPushButton *boton= new QPushButton("Elegir");
	int encontrado=0;
	trofeos->setModal(true);
	idTrofeosCamp.clear();
	QSqlQuery query("SELECT  idTrofeo,descripcion from Trofeo WHERE nombreComp='' and tipoTrofeo=1");
	
	while (query.next()) {
		idTrofeosCamp.append(query.value(0).toInt());
		listaTrofeosCamp->addItem(query.value(1).toString());
		encontrado=1;
	}
	if(encontrado==0){ 
		QMessageBox::warning(this,"","No se encontro ningun trofeo disponible para asignar.");
	}else{
		listaTrofeosCamp->setCurrentRow(0);
		connect(boton,SIGNAL(clicked()),this,SLOT(asignChampTrophy()));
		connect(boton,SIGNAL(clicked()),trofeos,SLOT(close()));		
		layout->addWidget(new QLabel("Trofeos Disponibles:"));
		layout->addWidget(listaTrofeosCamp);
		layout->addWidget(boton,Qt::AlignCenter);
		layout->addStretch();
		trofeos->setLayout(layout);
		trofeos->setFixedSize(250,200);
		trofeos->setVisible(true);		
	}
	
}

void MainWindow::showAvailableCompetition(){
	QDialog *competencias = new QDialog(this);
	listaCompetencias = new QListWidget;
	QVBoxLayout *layout= new QVBoxLayout; 
	QPushButton *boton= new QPushButton("Elegir");
	int encontrado=0;
	competencias->setModal(true);
	nombreCompet.clear();
	QSqlQuery query("SELECT nombreComp, cupo from Competencia");
		
	while (query.next()) {
		QString nombreC=query.value(0).toString();
		int cupo=query.value(1).toInt();
		if(isFull(nombreC,cupo))continue;
		nombreCompet.append(query.value(0).toString());
		listaCompetencias->addItem(query.value(0).toString());
		encontrado=1;
	}
	if(encontrado==0){ 
		QMessageBox::warning(this,"","No se encontro ninguna competencia disponible para asignar.");
	}else{
		listaCompetencias->setCurrentRow(0);
		connect(boton,SIGNAL(clicked()),this,SLOT(asignTeamtoCompetition()));
		connect(boton,SIGNAL(clicked()),competencias,SLOT(close()));		
		layout->addWidget(new QLabel("Competencias Disponibles:"));
		layout->addWidget(listaCompetencias);
		layout->addWidget(boton,Qt::AlignCenter);
		layout->addStretch();
		competencias->setLayout(layout);
		competencias->setFixedSize(250,200);
		competencias->setVisible(true);
	}	
}

void MainWindow::asignChampTrophy(){
	idTrofeoCampAsig= idTrofeosCamp.takeAt(listaTrofeosCamp->currentRow());
	trofeoCamp->setText("ASIGNADO");
}

void MainWindow::asignGolTrophy(){
	idTrofeoGolAsig= idTrofeosGol.takeAt(listaTrofeosGol->currentRow());
	trofeoGol->setText("ASIGNADO");	
}
void MainWindow::asignTeamtoCompetition(){
	nombreCompAsig=nombreCompet.takeAt(listaCompetencias->currentRow());
	competenciaEquipo->setText("ASIGNADO");	
}

void MainWindow::cleanCentralArea(){
	setWindowTitle("GECABOL");
	clearemAll();
	centralArea->setCurrentIndex(0);
}

void MainWindow::validateInsert(){
	if(auxAction=="Crear Competencia"){//VAlida qe inserte todos los campos de crear competencia
		if(nombreCompetencia->text()!="" && trofeoCamp->text()!="Sin Asignar..." &&
		   cuotaCompetencia->text()!="" && cupoCompetencia->text()!="" &&
		   trofeoGol->text()!="Sin Asignar..."){
			insertCompetencia();			
		}
	}else if(auxAction=="Alta de Trofeo"){//todos lso campos llenos en alta trofeo
		QString descripcion=descrTrofeo->text();
		QString precio=precioTrofeo->text();
		if(descripcion!="" && precio!=""){
			insertTrofeo();			
		}
	}else if(auxAction=="Add Player"){
		QString nombre=nombreJugador->text(), calle=calleJugador->text();
		QString col=coloniaJugador->text(), tel=telJugador->text();
		if(nombre!="" && calle!="" && col!="" && tel!=""){
			std::cout << "correcto agregarjugador" <<std::endl;	
			insertJugador();
			aPlayer->close();
		}		
	}else if(auxAction=="createUser"){
		QString usr=user->text(), pss=pass->text();
		if(usr!="" && pss!=""){
		    insertUsuario();
	    	cUser->close();
		}
	}else if(auxAction=="Inscribir Equipo a Competencia"){
		QString nombre=nombreEquipo->text();
		if(nombre!="" && competenciaEquipo->text()!="Sin Asignar..." && 
		   jugadores->count()>=7 && !representanteEquipo->isEnabled()){
			std::cout << "correcto inscribirequipo" <<std::endl;
			insertEquipo();
		}
	}else if(auxAction=="Alta de Arbitro"){
		QString nombre=nombreArbitro->text(), calle=calleArbitro->text();
		QString col=coloniaArbitro->text(), tel=telArbitro->text();
		if(nombre!="" && calle!="" && col!="" && tel!=""){
			std::cout << "correcto agregaralbitro" <<std::endl;	
			insertArbitro();
		}		
	}else if(auxAction=="Agregar Nueva Cancha")
		insertCancha();
	else if(auxAction=="Agregar Administrador"){
		QString user=userAdm->text(), pass=passAdm->text();
		if(user!="" && pass!=""){
			std::cout << "correcto agregaradministradore" <<std::endl;	
			insertAdministrador();
		}
	}
	
	
		

}

void MainWindow::insertTrofeo(){
	int tipo = campeon->isChecked() ? 1 : 2 ; //trofeo campeon = 1, goleador=2
	QSqlQuery query;
	query.prepare("INSERT INTO Trofeo (descripcion,precio,tipoTrofeo,idJugador,nombreComp) "
				  "VALUES (:descripcion, :precio, :tipo, :idjug, :nomC)");
	query.bindValue(":descripcion", descrTrofeo->text()); 
	query.bindValue(":precio", precioTrofeo->text().toInt()); 
	query.bindValue(":tipo", tipo); 
	query.bindValue(":idjug", 0); 
	query.bindValue(":nomC", "");
	query.exec();
	std::cout << "qery: " << "EStado:" << query.numRowsAffected() << qPrintable(query.lastError().text()) <<std::endl;
	QMessageBox::information(this,"Informacion","Trofeo ingresado con exito");
	/*campeon->setChecked(true);
	descrTrofeo->clear();
	precioTrofeo->clear();*/		
	cleanCentralArea();	
}

void MainWindow::insertCompetencia(){
	int tipo = tipoTorneo->isChecked() ? 1 : 2 ; //torneo (corto) = 1, liga(larga) =2
	std::cout << tipo <<std::endl;
	
	QSqlQuery query;
	query.prepare("INSERT INTO Competencia (nombreComp,cuota,cupo,fechaInicio,tipoComp) "
				  "VALUES (:nombre, :cuota, :cupo, :fecha, :tipo)");
	query.bindValue(":nombre", nombreCompetencia->text());
	query.bindValue(":cuota", cuotaCompetencia->text().toInt());	
	query.bindValue(":cupo", cupoCompetencia->text().toInt()); 
	query.bindValue(":fecha", fechaIni->date()); 
	query.bindValue(":tipo", tipo);
	
	query.exec();
    std::cout << "qery0: " << "EStado:" << query.numRowsAffected() << qPrintable(query.lastError().text()) <<std::endl;
    
	query.exec("UPDATE Trofeo SET nombreComp='"+nombreCompetencia->text()+"' WHERE idTrofeo="+QString::number(idTrofeoCampAsig));
	std::cout << "qery1: " << "EStado:" << query.numRowsAffected() << qPrintable(query.lastError().text()) <<std::endl;
	
	query.exec("UPDATE Trofeo SET nombreComp='"+nombreCompetencia->text()+"' WHERE idTrofeo="+QString::number(idTrofeoGolAsig));	
	std::cout << "qery2: " << "EStado:" << query.numRowsAffected() << qPrintable(query.lastError().text()) <<std::endl;
	
	QMessageBox::information(this,"Informacion","Competencia creada con exito");
	
	/*tipoTorneo->setChecked(true); nombreCompetencia->clear();
	trofeoCamp->setText("Sin Asignar...");trofeoGol->setText("Sin Asignar...");
	cupoCompetencia->clear(); cuotaCompetencia->clear(); idTrofeoCampAsig = idTrofeoGolAsig = 0;*/
	cleanCentralArea();	
}

void MainWindow::insertJugador(){
	QSqlQuery query;
	query.prepare("INSERT INTO Jugador (nombreJugador, calle, colonia, delegacion, telefono, dorsal,amonest,nombreEquipo)"
			      "VALUES (:nombre, :calle, :col, :del, :tel, :dor, :amon, :nequipo)");
	query.bindValue(":nombre", nombreJugador->text());
	query.bindValue(":calle", calleJugador->text());
	query.bindValue(":col", coloniaJugador->text());
	query.bindValue(":del", delJugador->text());
	query.bindValue(":tel", telJugador->text());
	query.bindValue(":dor", dorsal->currentText().toInt());
	query.bindValue(":amon", 0);
	query.bindValue(":nequipo", "inserting");
	query.exec();
	dorsales.takeAt(dorsal->currentIndex());
	jugadores->addItem(nombreJugador->text());
	auxAction="Inscribir Equipo a Competencia";
	std::cout << "qery0: " << "EStado:" << query.numRowsAffected() << qPrintable(query.lastError().text()) <<std::endl;		
}

void MainWindow::insertUsuario(){
	QSqlQuery query;
	query.prepare("INSERT INTO Usuario (nombreUsuario,password,equipo,idPerfil)"
			      "VALUES (:nombre, :pass, :equipo, :idPerf)");
	query.bindValue(":nombre", user->text());
	query.bindValue(":pass", pass->text());
	query.bindValue(":equipo", "inserting");
	query.bindValue(":idPerf", 3);
	query.exec();
	auxAction="Inscribir Equipo a Competencia";
	std::cout << "qery0: " << "EStado:" << query.numRowsAffected() << qPrintable(query.lastError().text()) <<std::endl;
	representanteEquipo->setText("Representante [OK]");
	representanteEquipo->setEnabled(false);	
}

void MainWindow::insertEquipo(){
	QSqlQuery query;
	QString equipo=nombreEquipo->text();
	query.prepare("INSERT INTO Equipo (nombreEquipo,nombreComp,numJugadores) "
				  "VALUES (:nombre, :comp, :jugs)");
	query.bindValue(":nombre",equipo );
	query.bindValue(":comp", nombreCompAsig);
	query.bindValue(":jugs", jugadores->count());
	query.exec();
	query.exec("UPDATE Jugador SET nombreEquipo='"+equipo+"' WHERE nombreEquipo='inserting'");
	QMessageBox::information(this,"Informacion","Equipo inscrito con exito");
	cleanCentralArea();	
}

void MainWindow::insertArbitro(){
	QSqlQuery query;
	query.prepare("INSERT INTO Arbitro (nombre, calle, colonia, delegacion, telefono) "
			      "VALUES (:nombre, :calle, :col, :del, :tel)");
	query.bindValue(":nombre", nombreArbitro->text());
	query.bindValue(":calle", calleArbitro->text());
	query.bindValue(":col", coloniaArbitro->text());
	query.bindValue(":del", delArbitro->text());
	query.bindValue(":tel", telArbitro->text());
	query.exec();
	std::cout << "qery0: " << "EStado:" << query.numRowsAffected() << qPrintable(query.lastError().text()) <<std::endl;
	QMessageBox::information(this,"Informacion","Arbitro ingresado con exito");
	cleanCentralArea();	
}

void MainWindow::insertCancha(){
	QSqlQuery query;
	query.prepare("INSERT INTO Cancha (horarioIni, horarioFin) "
			      "VALUES (:inicio, :fin)");
	query.bindValue(":inicio", horaInicioCancha->time());
	query.bindValue(":fin", horaFinCancha->time());
	query.exec();
	std::cout << "qery0: " << "EStado:" << query.numRowsAffected() << qPrintable(query.lastError().text()) <<std::endl;
	QMessageBox::information(this,"Informacion","Cancha agregada con exito");
	cleanCentralArea();	
}
void MainWindow::insertAdministrador(){
	QSqlQuery query;
	query.prepare("INSERT INTO Usuario (nombreUsuario,password,equipo,idPerfil)"
			      "VALUES (:nombre, :pass, :equipo, :idPerf)");
	query.bindValue(":nombre", userAdm->text());
	query.bindValue(":pass", passAdm->text());
	query.bindValue(":equipo", "");
	query.bindValue(":idPerf", 2);
	query.exec();
	std::cout << "qery0: " << "EStado:" << query.numRowsAffected() << qPrintable(query.lastError().text()) <<std::endl;
	QMessageBox::information(this,"Informacion","Usuario con privilegios adminsitrativos creado con exito");
	cleanCentralArea();			
}

void MainWindow::addPlayer(){
	aPlayer = new QDialog(this);
	QPushButton *ok = new QPushButton("Aceptar");
	nombreJugador = new QLineEdit;
	calleJugador = new QLineEdit;
	coloniaJugador = new QLineEdit;
	delJugador = new QLineEdit;
	telJugador = new QLineEdit;
	dorsal = new QComboBox;
	for(int i=0;i<dorsales.size();i++){
		dorsal->addItem(QString::number(dorsales.value(i)));		
	}
	aPlayer->setModal(true);
	aPlayer->setWindowTitle("Agregar Jugador a Equipo");
	QGridLayout *gl = new QGridLayout;
	gl->addWidget(new QLabel("Nombre:"),0,0);
	gl->addWidget(nombreJugador,0,1,1,3);
	gl->addWidget(new QLabel("Calle:"),1,0);
	gl->addWidget(calleJugador,1,1);
	gl->addWidget(new QLabel("Colonia:"),1,2);
	gl->addWidget(coloniaJugador,1,3);
	gl->addWidget(new QLabel("Del. o Mpo. :"),2,0);
	gl->addWidget(delJugador,2,1);
	gl->addWidget(new QLabel("Telefono:"),2,2);
	gl->addWidget(telJugador,2,3);
	gl->addWidget(new QLabel("Dorsal:"),3,1);
	gl->addWidget(dorsal,3,2);
	gl->addWidget(ok,4,1,1,2,Qt::AlignHCenter);
	connect(ok,SIGNAL(clicked()),this,SLOT(validateInsert()));
	aPlayer->setLayout(gl);
	aPlayer->setFixedSize(350,200);
	aPlayer->setVisible(true);
	auxAction="Add Player";
	
}

void MainWindow::llenaDorsales(){
	for(int i=1;i<=20;i++){
		dorsales.append(i);
	}
}

void MainWindow::createUser(){
	cUser= new QDialog(this);
	user = new QLineEdit;
	pass = new QLineEdit;
	pass->setEchoMode(QLineEdit::Password);
	QPushButton *ok = new QPushButton("Aceptar");
	QGridLayout *ly = new QGridLayout;
	cUser->setWindowTitle("Crear Usuario");
	connect(ok,SIGNAL(clicked()),this,SLOT(validateInsert()));
	ly->addWidget(new QLabel("Usuario:"),0,0);
	ly->addWidget(user,0,1);
	ly->addWidget(new QLabel("Contrasena:"),1,0);
	ly->addWidget(pass,1,1);
	ly->addWidget(ok,2,0,1,2,Qt::AlignCenter);
	cUser->setLayout(ly);
	cUser->setFixedSize(250,110);
	auxAction="createUser";
	cUser->setVisible(true);	
}

bool MainWindow::isFull(QString nombreC, int cupo){
	int contador=0;
	QSqlQuery query;
	query.exec("SELECT nombreEquipo FROM Equipo WHERE nombreComp='"+nombreC+"'");
	while(query.next()) contador++;
	if(contador<cupo) return false;
	else return true;
}

void MainWindow::createStackedLayouts(){
		
	nombreCompetenciaLabel = new QLabel("Nombre:");
	fechaIniLabel= new QLabel("Fecha de inicio:");
	tipoCompetenciaLabel= new QLabel("Tipo:");
	cupoCompetenciaLabel = new QLabel("Cupo:");
	cuotaCompetenciaLabel = new QLabel("Cuota de inscripcion:");
	trofCampLabel= new QLabel("Campeon:");
	trofGolLabel= new QLabel("Goleador:");
	nombreCompetencia= new QLineEdit;
	cupoCompetencia= new QLineEdit;
	cuotaCompetencia = new QLineEdit;
	fechaIni = new QDateEdit(QDate::currentDate());
	tipoTorneo = new QRadioButton("Torneo");
	tipoLiga = new QRadioButton("Liga");
	ok= new QPushButton("Aceptar");
	cancel= new QPushButton("Cancelar");
	trofeoCamp = new QPushButton("Sin Asignar...");
	trofeoGol = new QPushButton("Sin Asignar...");
	bgroup = new QButtonGroup;
	gbox = new QGroupBox("Datos");
	competencia = new QGridLayout;
	QVBoxLayout *layout = new QVBoxLayout;//Para agrupar Qgroupboxes, basicamente
	
	
	connect(trofeoCamp,SIGNAL(clicked()),this,SLOT(showAvailableChampTrophy()));//x2//jalartrofeo
	connect(trofeoGol,SIGNAL(clicked()),this,SLOT(showAvailableGolTrophy()));
		
	QWidget *wd = new QWidget();//Widget multiuso para colocar todos los comp. de cada layout
	centralArea->addWidget(wd); //LAYOUT 0
	
	
	bgroup->addButton(tipoTorneo);
	bgroup->addButton(tipoLiga);
	tipoTorneo->setChecked(true);
	competencia->addWidget(nombreCompetenciaLabel,0,0);
	competencia->addWidget(nombreCompetencia,0,1,1,2);
	competencia->addWidget(fechaIniLabel,1,0);
	competencia->addWidget(fechaIni,1,1);	
	competencia->addWidget(cuotaCompetenciaLabel,2,0);
	competencia->addWidget(cuotaCompetencia,2,1);		
	competencia->addWidget(cupoCompetenciaLabel,3,0);
	competencia->addWidget(cupoCompetencia,3,1);		
	competencia->addWidget(tipoCompetenciaLabel,4,0);
	competencia->addWidget(tipoTorneo,4,1);
	competencia->addWidget(tipoLiga,4,2);
	gbox->setLayout(competencia);
	layout->addWidget(gbox);
	
	gbox= new QGroupBox("Trofeos");
	competencia = new QGridLayout;
	competencia->addWidget(trofCampLabel,0,0);
	competencia->addWidget(trofGolLabel,1,0);
	competencia->addWidget(trofeoCamp,0,1,1,2);
	competencia->addWidget(trofeoGol,1,1,1,2);
	gbox->setLayout(competencia);
	layout->addWidget(gbox);
	QGridLayout *buttonLy = new QGridLayout;
	buttonLy->addWidget(ok,0,0,Qt::AlignRight);
	buttonLy->addWidget(cancel,0,1,Qt::AlignLeft);
	connect(ok,SIGNAL(clicked()),this,SLOT(validateInsert()));
	connect(cancel,SIGNAL(clicked()),this, SLOT(cleanCentralArea()));
	layout->addLayout(buttonLy);
	layout->addStretch();
	wd = new QWidget();
	wd->setLayout(layout);
	centralArea->addWidget(wd); //LAYOUT1
	
	layout = new QVBoxLayout;
	gbox= new QGroupBox("Datos");
	bgroup = new QButtonGroup;
	descrTrofeoLabel=new QLabel("Descripcion:");
	precioTrofeoLabel=new QLabel("Precio:");
	tipoTrofeoLabel=new QLabel("Tipo[]:");
	descrTrofeo = new QLineEdit;
	precioTrofeo = new QLineEdit;
	goleador = new QRadioButton("Goleador");
	campeon = new QRadioButton("Campeon");
	bgroup->addButton(campeon);	
	bgroup->addButton(goleador);
	campeon->setChecked(true);
	competencia = new QGridLayout;
	competencia->addWidget(descrTrofeoLabel,0,0);
	competencia->addWidget(descrTrofeo,0,1,1,2);
	competencia->addWidget(precioTrofeoLabel,1,0);
	competencia->addWidget(precioTrofeo,1,1,1,2);
	competencia->addWidget(tipoTrofeoLabel,2,0);
	competencia->addWidget(campeon,2,1);
	competencia->addWidget(goleador,2,2);
	gbox->setLayout(competencia);
	layout->addWidget(gbox);
	ok= new QPushButton("Aceptar");
	cancel= new QPushButton("Cancelar");
	buttonLy = new QGridLayout;
	buttonLy->addWidget(ok,0,0,Qt::AlignRight);
	buttonLy->addWidget(cancel,0,1,Qt::AlignLeft);
	connect(ok,SIGNAL(clicked()),this,SLOT(validateInsert()));
	connect(cancel,SIGNAL(clicked()),this, SLOT(cleanCentralArea()));
	layout->addLayout(buttonLy);
	layout->addStretch();
	wd= new QWidget();
	wd->setLayout(layout);
	centralArea->addWidget(wd); //LAYOUT2
	
	layout = new QVBoxLayout;
	competencia = new QGridLayout;
	gbox= new QGroupBox("Equipo");
	nombreEquipo= new QLineEdit;
	competenciaEquipo = new QPushButton("Sin Asignar...");
	addJugador = new QPushButton("Agregar Jugador...");
	representanteEquipo = new QPushButton("Representante...");
	ok = new QPushButton("Aceptar");
	cancel = new QPushButton("Cancelar");
	connect(competenciaEquipo,SIGNAL(clicked()),this,SLOT(showAvailableCompetition()));
	connect(ok,SIGNAL(clicked()),this,SLOT(validateInsert()));
	connect(cancel,SIGNAL(clicked()),this, SLOT(cleanCentralArea()));
	connect(addJugador,SIGNAL(clicked()),this,SLOT(addPlayer()));
	connect(representanteEquipo,SIGNAL(clicked()),this,SLOT(createUser()));
	jugadores= new QListWidget;
	competencia->addWidget(new QLabel("Nombre:"),0,0);
	competencia->addWidget(nombreEquipo,0,1);
	competencia->addWidget(new QLabel("Participa en:"),1,0);
	competencia->addWidget(competenciaEquipo,1,1,Qt::AlignLeft);
	gbox->setLayout(competencia);
	layout->addWidget(gbox);
	
	competencia= new QGridLayout;
	gbox= new QGroupBox("Integrantes:");
	competencia->addWidget(addJugador,0,0,Qt::AlignLeft);
	competencia->addWidget(new QLabel("Listado:"),1,0);		
	competencia->addWidget(jugadores,2,0);
	competencia->addWidget(representanteEquipo,3,0,Qt::AlignLeft);
	gbox->setLayout(competencia);
	layout->addWidget(gbox);
	buttonLy = new QGridLayout;
	buttonLy->addWidget(ok,0,0,Qt::AlignRight);
	buttonLy->addWidget(cancel,0,1,Qt::AlignLeft);
	layout->addLayout(buttonLy);
	layout->addStretch();
	wd= new QWidget();
	wd->setLayout(layout);
	centralArea->addWidget(wd); //LAYOUT3
	
	QGridLayout *arb = new QGridLayout;
	layout = new QVBoxLayout;
	gbox= new QGroupBox("Arbitro");
	ok = new QPushButton("Aceptar");
	cancel = new QPushButton("Cancelar");
	nombreArbitro = new QLineEdit;
	calleArbitro = new QLineEdit;
	coloniaArbitro = new QLineEdit;
	delArbitro = new QLineEdit;
	telArbitro = new QLineEdit;
	connect(ok,SIGNAL(clicked()),this,SLOT(validateInsert()));
	connect(cancel,SIGNAL(clicked()),this,SLOT(cleanCentralArea()));
	arb->addWidget(new QLabel("Nombre:"),0,0);
	arb->addWidget(nombreArbitro,0,1);
	arb->addWidget(new QLabel("Calle:"),1,0);
	arb->addWidget(calleArbitro,1,1);
	arb->addWidget(new QLabel("Colonia:"),2,0);
	arb->addWidget(coloniaArbitro,2,1);
	arb->addWidget(new QLabel("Del. o Mpo. :"),3,0);
	arb->addWidget(delArbitro,3,1);
	arb->addWidget(new QLabel("Telefono:"),4,0);
	arb->addWidget(telArbitro,4,1);
	gbox->setLayout(arb);
	buttonLy = new QGridLayout;
	buttonLy->addWidget(ok,0,0,Qt::AlignRight);
	buttonLy->addWidget(cancel,0,1,Qt::AlignLeft);
	layout->addWidget(gbox);
	layout->addLayout(buttonLy);
	layout->addStretch();
	wd= new QWidget();
	wd->setLayout(layout);
	centralArea->addWidget(wd); //LAYOUT4
	
	QGridLayout *canc = new QGridLayout;
	layout = new QVBoxLayout;
	gbox= new QGroupBox("Horario de Servicio");
	horaInicioCancha = new QTimeEdit(QTime(7,0,0),this);
	horaFinCancha = new QTimeEdit(QTime(23,0,0),this);
	horaInicioCancha->setTimeRange(QTime(7,0,0),QTime(15,0,0));
	horaFinCancha->setTimeRange(QTime(15,0,1),QTime(23,0,0));
	ok = new QPushButton("Aceptar");
	cancel = new QPushButton("Cancelar");
	connect(ok,SIGNAL(clicked()),this,SLOT(validateInsert()));
	connect(cancel,SIGNAL(clicked()),this,SLOT(cleanCentralArea()));
	canc->addWidget(new QLabel("Hora de Inicio:"),0,0);
	canc->addWidget(horaInicioCancha,0,1);
	canc->addWidget(new QLabel("Hora de Cierre:"),1,0);
	canc->addWidget(horaFinCancha,1,1);
	gbox->setLayout(canc);
	buttonLy = new QGridLayout;
	buttonLy->addWidget(ok,0,0,Qt::AlignRight);
	buttonLy->addWidget(cancel,0,1,Qt::AlignLeft);
	layout->addWidget(gbox);
	layout->addLayout(buttonLy);
	layout->addStretch();
	wd= new QWidget();
	wd->setLayout(layout);
	centralArea->addWidget(wd); //LAYOUT5
	
	QGridLayout *admin = new QGridLayout;
	layout = new QVBoxLayout;
	gbox= new QGroupBox("Cuenta Administador");
	userAdm = new QLineEdit;
	passAdm= new QLineEdit;
	ok = new QPushButton("Aceptar");
	cancel = new QPushButton("Cancelar");
	passAdm->setEchoMode(QLineEdit::Password);
	connect(ok,SIGNAL(clicked()),this,SLOT(validateInsert()));
	connect(cancel,SIGNAL(clicked()),this,SLOT(cleanCentralArea()));
	admin->addWidget(new QLabel("Usuario:"),0,0);
	admin->addWidget(userAdm,0,1);
	admin->addWidget(new QLabel("Contrasena:"),1,0);
	admin->addWidget(passAdm,1,1);
	gbox->setLayout(admin);
	buttonLy = new QGridLayout;
	buttonLy->addWidget(ok,0,0,Qt::AlignRight);
	buttonLy->addWidget(cancel,0,1,Qt::AlignLeft);
	layout->addWidget(gbox);
	layout->addLayout(buttonLy);
	layout->addStretch();
	wd= new QWidget();
	wd->setLayout(layout);
	centralArea->addWidget(wd); //LAYOUT6
	
}
void MainWindow::clearemAll(){
	campeon->setChecked(true); descrTrofeo->clear(); precioTrofeo->clear();
	tipoTorneo->setChecked(true); nombreCompetencia->clear();
	trofeoCamp->setText("Sin Asignar...");trofeoGol->setText("Sin Asignar...");
	cupoCompetencia->clear(); cuotaCompetencia->clear(); idTrofeoCampAsig = idTrofeoGolAsig = 0;
	nombreEquipo->clear();	competenciaEquipo->setText("Sin Asignar...");
	representanteEquipo->setEnabled(true); representanteEquipo->setText("Representante..."); 
	jugadores->clear();	representanteEquipo->setEnabled(true);
	dorsales.clear(); nombreArbitro->clear(); calleArbitro->clear(); coloniaArbitro->clear();
	delArbitro->clear(); telArbitro->clear();
	horaInicioCancha->clear(); userAdm->clear(); passAdm->clear();
}




